/**
 * 
 */
package edu.erpan.fachada;

import java.util.List;

import com.ibytecode.util.JNDILookup;

import edu.erpan.bl.bean.MateriaPrimaBean;
import edu.erpan.bl.bean.MateriaPrimaBeanRemote;
import edu.erpan.bl.entities.LineaDetalleIngresoMp;
import edu.erpan.bl.entities.MateriaPrima;
import edu.erpan.bl.entities.Opcion;
import edu.erpan.bl.entities.Proveedor;
import edu.erpan.bl.entities.RecepcionMateriaPrima;
import edu.erpan.util.entityManager.exceptions.IdNotFoundException;
import edu.erpan.util.entityManager.exceptions.PersistException;
import edu.erpan.util.entityManager.exceptions.QueryException;

/**
 * @author Jeison
 *
 */
public class MateriaPrimaFachada implements IMateriaPrimaFachada {

	private final String  masa="masa";
	private final String  liquido="liquido";
	private final String  calificacion="calificacion";
	/**
	 * 
	 */
	public MateriaPrimaFachada() {
		// TODO Auto-generated constructor stub
	}

	/* (non-Javadoc)
	 * @see edu.erpan.fachada.IMateriaPrimaFachada#consultarMateriaPrima(edu.erpan.bl.entities.MateriaPrima)
	 */
	@Override
	public MateriaPrima consultarMateriaPrima(MateriaPrima materiaPrima)
			throws QueryException, IdNotFoundException {
		// TODO Auto-generated method stub
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return (MateriaPrima) materiaPrimaBean.consultarMateriaPrima(materiaPrima);
	}

	/* (non-Javadoc)
	 * @see edu.erpan.fachada.IMateriaPrimaFachada#consultarMateriasPrimas()
	 */
	@Override
	public List<MateriaPrima> consultarMateriasPrimas() throws QueryException {
		// TODO Auto-generated method stub
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarMateriasPrimas();
	}

	@Override
	public void guardarMateriaPrima(MateriaPrima materiaPrima)
			throws PersistException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.saveEntity(materiaPrima);
	}

	@Override
	public void editarMateriaPrima(MateriaPrima materiaPrima)
			throws QueryException, IdNotFoundException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.mergeEntity(materiaPrima);
	}
	
	@Override
	public void eliminarMateriaPrima(MateriaPrima materiaPrima)
			throws QueryException, IdNotFoundException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.deleteEntity(materiaPrima);
	}
	
	
	@Override
	public List<Opcion> consultarUnidadesDeMedida()
			throws QueryException{
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		List<Opcion>opciones=materiaPrimaBean.consultarOpciones(this.masa);
		opciones.addAll(materiaPrimaBean.consultarOpciones(this.liquido));
		return opciones;
	}

	@Override
	public List<Opcion> consultarCalificaciones()
			throws QueryException{
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarOpciones(this.calificacion);
	}
	
	@Override
	public List<Proveedor> consultarProveedores(Boolean activo) throws QueryException{
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarProveedores(activo);
	}

	@Override
	public void guardarRecepcionMateriaPrima(
			RecepcionMateriaPrima recepcionMateriaPrima,
			List<LineaDetalleIngresoMp> listaLineasDetalleIngresoMp)
			throws PersistException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.guardarRecepcionMateriaPrima(recepcionMateriaPrima, listaLineasDetalleIngresoMp);
	}

	@Override
	public void editarRecepcionMateriaPrima(
			RecepcionMateriaPrima recepcionMateriaPrima)
			throws PersistException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.editarRecepcionMateriaPrima(recepcionMateriaPrima);
	}

	@Override
	public void eliminarRecepcionMateriaPrima(
			RecepcionMateriaPrima recepcionMateriaPrima) throws QueryException {
		// TODO Auto-generated method stub
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.eliminarRecepcionMateriaPrima(recepcionMateriaPrima);
	}

	@Override
	public List<RecepcionMateriaPrima> consultarRecepcionesMateriaPrima()
			throws QueryException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarRecepcionesMateriaPrima();
	}

	@Override
	public List<LineaDetalleIngresoMp> consultarLineasDetalleRecepcion(
			RecepcionMateriaPrima recepcionMateriaPrima) throws QueryException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarLineasDetalleRecepcion(recepcionMateriaPrima);
	}

	@Override
	public RecepcionMateriaPrima consultarRecepcionMateriaPrima(
			RecepcionMateriaPrima recepcionMateriaPrima) throws QueryException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarRecepcionMateriaPrima(recepcionMateriaPrima);
	}

	@Override
	public void guardarProveedor(Proveedor proveedor) throws PersistException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.guardarProveedor(proveedor);
	}

	@Override
	public void editarProveedor(Proveedor proveedor) throws PersistException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		materiaPrimaBean.editarProveedor(proveedor);
	}

	@Override
	public Proveedor consultarProveedor(Proveedor proveedor)
			throws QueryException, IdNotFoundException {
		MateriaPrimaBeanRemote materiaPrimaBean=JNDILookup.doLookup(MateriaPrimaBean.class, MateriaPrimaBeanRemote.class);
		return materiaPrimaBean.consultarProveedor(proveedor);
	}
}
